France Travail Scraper: 700K+ FR Jobs (Pôle Emploi)
Pricing
$1.50 / 1,000 job scrapeds
France Travail Scraper: 700K+ FR Jobs (Pôle Emploi)
Scrape 700K+ public job offers from France Travail (ex Pôle Emploi). Filter by keywords, location, contract (CDI/CDD/alternance), experience, salary. Get title, company, location, required skills, work hours, full description. For ATS, recruitment agencies, market intel. $1.50/1K jobs.
Pricing
$1.50 / 1,000 job scrapeds
Rating
0.0
(0)
Developer
Walid
Maintained by CommunityActor stats
1
Bookmarked
50
Total users
32
Monthly active users
7 days ago
Last modified
Categories
Share
France Travail Scraper — 700K+ FR Jobs API (Pôle Emploi)
⭐ Bookmark this actor → apify.com/dltik/francetravail-scraper — Apify ranks by bookmarks, so it directly drives the visibility of this scraper. One click. No signup beyond your existing Apify account.
Scrape 700K+ public job offers from France Travail (formerly Pôle Emploi) — the largest French public job board. Filter by 11+ criteria. Get structured salary, NLP-extracted skills, lat/lon geo coords, education level, experience years — fields no other France Travail scraper on Apify provides. No OAuth, no API key, no monthly subscription.
✨ What makes this scraper different
| Feature | This scraper | Other FT scrapers |
|---|---|---|
Structured salary (min, max, period, annualized_*) | ✅ | ❌ raw string only |
| 80+ skills auto-extracted (Python, AWS, leadership, CAP, BTS...) | ✅ | ❌ |
| Geo coords (lat/lon via BAN) for each job | ✅ | ❌ |
| Experience years detection | ✅ | ❌ |
| Education level detection (Bac+N, BTS, Master...) | ✅ | ❌ |
| Partner offers (Indeed, Apec) inclusion toggle | ✅ | partial |
| Detail page enrichment | ✅ | optional |
| Success rate (live 30d) | 100% | varies |
| Reviews | 0 (new) | 0-1 |
What can this scraper do?
- 🇫🇷 700K+ live French job offers indexed by France Travail (CDI, CDD, alternance, intérim, stage)
- 🎯 11 search filters — keywords, location, contract, experience, qualification, salary, radius, posted since, full-time, ROME code
- 💰 Structured salary parsing —
min,max, currency, period (year/month/hour), auto-annualized - 🧠 NLP skills extraction — 80+ keywords (Python, JS, Docker, AWS, BTS, CACES, CAP, leadership, anglais...)
- 📍 Geo coordinates — every job geocoded via Base Adresse Nationale (free, official FR gov)
- 🎓 Education level + experience years auto-detected from descriptions
- 🚀 No auth, no quota — HTTP-only, datacenter proxy optional
What data can you extract per job?
| Field | Description |
|---|---|
id | France Travail offer ID |
title | Job title |
company | Employer name (or anonymized "Particulier") |
location | City + postal code |
geo | { lat, lon, label } from BAN API |
department | Département code (75, 92, 13...) |
contract_type | CDI / CDD / MIS / SAI / FS |
contract_nature | E1 alternance / E2 apprentissage / FT CIE... |
salary | Raw salary text from France Travail |
salary_parsed | { min, max, currency, period, annualized_min, annualized_max, is_range } |
skills_detected | List of skills (NLP-extracted, ≤25 per job) |
experience_years | Detected min years from description |
education_level | Detected (Bac+5, BTS, CAP, Master...) |
description | Full job description (when enrichDetails=true) |
rome_code | ROME job classification code |
apply_url | Direct application URL on France Travail |
posted_date | YYYY-MM-DD |
partner_source | Indeed / Apec / direct if applicable |
How to scrape France Travail jobs in 5 steps
- Create a free Apify account — no credit card required
- Open France Travail Scraper on Apify Store
- Set your filters — keyword (e.g. "développeur python"), location (
75Dfor Paris dept), contract (CDI) - Pick maxResults (start with 20 to validate, scale to 5000 once happy)
- Click Start — clean JSON in seconds, exportable to CSV / JSON / Excel from Apify dataset UI
How much does it cost to scrape France Travail jobs?
PAY_PER_EVENT — $0.0015 per job scraped ($1.50 per 1,000 results). Failed/empty runs not charged.
| Run size | Jobs | Apify cost | Time |
|---|---|---|---|
| Quick test | 20 | $0.03 | ~3s |
| Standard | 200 | $0.30 | ~15s |
| Deep | 1,000 | $1.50 | ~1min |
| Massive | 5,000 | $7.50 | ~5min |
Add enrichDetails=true for full description + skills + experience (+1 detail fetch per job, +50% time).
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
keywords | string | — | Free-text search (title + description) |
location | string | — | 75D = Paris dept, 13D = Bouches-du-Rhône |
contractType | string | — | CDI, CDD, MIS, SAI, multiple via comma |
contractNature | string | — | E1 alternance, E2 apprentissage, FS formation |
experience | enum | — | 1 débutant, 2 exigé, 3 expérimenté |
qualification | string | — | 5 cadre, 3 technicien, etc. |
fullTimeOnly | bool | false | Only full-time |
minSalary | string | — | Annual minimum (30000) |
radiusKm | string | — | Search radius from location |
postedSince | enum | — | 1, 3, 7, 14, 31 days |
includePartners | bool | true | Include Indeed/Apec partner offers |
enrichDetails | bool | false | Fetch detail page (full description, skills) |
maxResults | integer | 20 | 1–5000 |
proxyConfig | object | datacenter | France Travail rarely blocks |
Output example
{"id": "ABCD123","title": "Data Engineer Senior H/F","company": "Acme Tech","location": "Paris 9e (75009)","geo": { "lat": 48.8775, "lon": 2.3380, "label": "Paris 9e Arrondissement" },"department": "75","contract_type": "CDI","salary": "De 55 000 € à 75 000 € sur 12 mois","salary_parsed": {"raw": "De 55 000 € à 75 000 € sur 12 mois","min": 55000, "max": 75000, "currency": "EUR","period": "year", "is_range": true,"annualized_min": 55000, "annualized_max": 75000},"skills_detected": ["Python", "AWS", "Docker", "Kafka", "Snowflake", "SQL", "Airflow", "anglais"],"experience_years": 5,"education_level": "Bac+5","description": "Vous rejoignez l'équipe data...","rome_code": "M1805","apply_url": "https://candidat.francetravail.fr/offres/recherche/detail/ABCD123","posted_date": "2026-06-19","scraped_at": "2026-06-20T14:32:01Z"}
Use cases
- 🎯 ATS auto-feed — daily import of new CDI/alternance offers matching company hiring filters
- 💼 Recruitment intelligence — track who's hiring what in any ROME code / department
- 💰 Salary benchmarking — aggregate
salary_parsedacross thousands of jobs by role + region - 🗺️ Geo job-map dashboards — leverage
geo.lat/lonfor interactive maps (Mapbox, Leaflet) - 📊 Labor-market analytics — track open job count per ROME × department × month
- 🤖 Career bots — alert candidates daily when matching jobs are posted (combine with diff)
- 🎓 Career coaching SaaS — show students alternance/apprentissage matching their CAP/BTS
Use the actor via API
Python:
import requestsrun = requests.post("https://api.apify.com/v2/acts/dltik~francetravail-scraper/run-sync-get-dataset-items",headers={"Authorization": "Bearer YOUR_APIFY_TOKEN", "Content-Type": "application/json"},json={"keywords": "développeur python","location": "75D","contractType": "CDI","experience": "2","postedSince": "7","enrichDetails": True,"maxResults": 50}).json()print(f"Scraped {len(run)} jobs")
curl:
curl -X POST "https://api.apify.com/v2/acts/dltik~francetravail-scraper/run-sync-get-dataset-items" \-H "Authorization: Bearer YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"keywords":"data engineer","location":"69D","contractType":"CDI","maxResults":100}'
FAQ
Why not the official France Travail API? The official API requires OAuth registration, has a monthly quota, and a 3-month auth-key rotation. This scraper hits the public search endpoints — zero auth, no quota, every public job offer included.
Does it cover alternance and stage?
Yes, via contractNature (E1 alternance, E2 apprentissage, FS formation). All major contract types supported.
ROME code support?
Yes — all 532 ROME job codes are searchable via the keywords filter (e.g., keywords=M1805).
How fresh is the data? Pulled live at run time. France Travail re-indexes the public search every ~hour, so freshness matches their public site.
Will France Travail block my runs? We've never been blocked at moderate volume (< 5000 jobs/run). Datacenter proxy is the default — toggle to residential only if you scrape at high frequency.
What's salary_parsed exactly?
A structured breakdown of the raw salary string: detects ranges (30k-45k), single values (30000), periods (year/month/hour), and auto-annualizes to a comparable yearly figure. Unlike other scrapers, you can filter and sort numerically.
⭐ Found this France Travail Scraper useful? Bookmark it — Apify ranks actors by bookmarks, so it's the strongest single signal for Store visibility. One click.
Other scrapers by dltik
| Actor | What it does | Price |
|---|---|---|
| Pappers Sirene Scraper | 26M French companies (SIREN, SIRET, dirigeants, capital) | $0.001/result |
| Pappers Enrichment Bundle | Bulk enrichment of SIREN lists with full company data | $0.005/result |
| Pappers MCP Server | French company data for AI agents (Claude / GPT) | $0.01/tool-call |
| BODACC Scraper | French commercial court announcements (creations, faillites, M&A) | $0.003/record |
| BODACC MCP Server | BODACC announcements for AI agents | $0.01/tool-call |
| HelloWork Scraper | France's #2 job board | $0.003/job |
| Welcome to the Jungle Scraper | Tech-focused FR/EU jobs | $0.003/job |
| JobTeaser Scraper | Student jobs, internships, alternance | $0.003/job |
| Malt Scraper | French freelancers (profiles, rates) | $0.005/profile |
| Annuaire Administration Française | French gov agencies & contacts | $0.003/org |
| TED Europa Scraper | EU public procurement tenders | $0.005/tender |
| Boamp Scraper | French national public procurement | $0.005/tender |
| ADEME DPE Scraper | Energy performance diagnostics for FR buildings | $0.002/DPE |
| HATVP Scraper | French elected officials' financial declarations | varies |
License: MIT · Author: dltik